import axios from 'axios'
import router from '../router'
axios.defaults.timeout = 5000 // 超时时间
axios.defaults.withCredentials = true // 允许跨域
// Content-type响应头
axios.defaults.headers.post['Content-type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
// 基础url
axios.defaults.baseURL = 'http://localhost:8888'

// 响应拦截器
axios.interceptors.response.use(
  response => {
    // 如果response里面的status是200， 说明访问到接口，否则错误
    if (response.status === 200) {
      return Promise.resolve(response)
    } else {
      return Promise.reject(response)
    }
  },
  error => {
    if (error.response.status) {
      switch (error.response.status) {
        case 401:
          router.replace({ // 未登录
              path: '/',
              query: {
                redirect: router.currentRoute.fullPath //保存当前输入的地址
              }
          })
          break
        case 404:
          break
      }
      return Promise.reject(error.response)
    }
  }
);

/*封装get方法*/
export function get (url, params={}) {
  return new Promise((resolve, reject) => {
    axios.get(url,{params: params})
      .then(response => {
        resolve(response.data) // 处理返回值
      })
      .catch(err => {
        reject(err);
      })
  })
}

/*封装post方法*/
// 在get中参数用&符号连接起来，而在post中用表单提交的
export function post(url, data={}){
  return new Promise((resolve, reject) => {
    axios.post(url,data)
      .then(response => {
        resolve(response.data)
      })
      .catch(err => {
        reject(err);
      })
  })
}
